#include "mainwindowimpl.h"
#include "coordenadas.h"
#include "llegada.h"

//
MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f) 
	: QMainWindow(parent, f)
{
	setupUi(this);
        this->progressBar->setValue(0);
}
//

void MainWindowImpl::acerca(void)
{
	QMessageBox ms;
        ms.setText("<h3> Creado por Brian Schmidt</h3>");
	ms.exec();
}

void MainWindowImpl::acerca_qt()
{
    QApplication::aboutQt();
}

void MainWindowImpl::ingresarcoords(void)
{
    if(actuales.ingreso_inicio)
    {
    lat1.grados = this->lineEdit->text().toDouble(0);
    lat1.minutos = this->lineEdit_2->text().toDouble(0);
    lat1.segundos = this->lineEdit_3->text().toDouble(0);
	
    lon1.grados = this->lineEdit_4->text().toDouble(0);
    lon1.minutos = this->lineEdit_5->text().toDouble(0);
    lon1.segundos = this->lineEdit_6->text().toDouble(0);
    if(this->comboBox->currentText()=="Sur")
    {
        pasar_cuadrante_negativo(&lat1);
    }
    if(this->comboBox_2->currentText()=="Oeste")
    {
        pasar_cuadrante_negativo(&lon1);
    }
    actuales.CargarSiguienteMov(lat1, lon1);
    actuales.CrearVistaMap();
    this->webView->setUrl(QUrl("pagina.html"));
    }
    else
    {
        QMessageBox ms;
        ms.setText("Primero debe ingresar las coordenadas de partida");
        ms.exec();
    }
}

void MainWindowImpl::destino()
{
    class destino ventana;
    if(ventana.exec())
    {
        actuales.SeleccionarDestino(ventana.lat1, ventana.long1);
    }

}

void MainWindowImpl::llegada()
{
    class Llegada ventana;
    if(ventana.exec())
    {
        if(ventana.hv)
        {
            QTime tmp;
            tmp = QTime::currentTime();
            float mins;
            mins = tmp.hour()*60 + tmp.minute() + tmp.second()/60;
            mins -= ventana.hora.hour()*60 + ventana.hora.minute() + ventana.hora.second()/60;
            this->actuales.CalcularVelocidadParaArribo(mins);
        }
        else
        {

        }
    }

}

void MainWindowImpl::datos()
{
    class datos_utiles datitos;
    datitos.llenarDatos(actuales, lat1, lon1);
    datitos.exec();

}

void MainWindowImpl::on_webView_loadProgress(int progress)
{

        this->progressBar->setValue(progress);
}

void MainWindowImpl::on_webView_loadStarted()
{
    this->progressBar->setValue(0);
}

void MainWindowImpl::on_webView_loadFinished(bool ap)
{
    if(ap)
    {
    this->progressBar->setValue(100);
    }
}

void MainWindowImpl::on_webView_linkClicked(QUrl newurl)
{
    this->webView->setUrl(newurl);
}

void MainWindowImpl::partida()
{
    class destino ventana;
    ventana.titulo = "GPS - Ingrese las coordenadas de partida";
    ventana.lab1 = "Ingrese las coordenadas de partida o seleccione una ciudad de la lista";
    ventana.set_title();
    if(ventana.exec())
    {
        actuales.ingresarLAT(ventana.lat1);
        actuales.ingresarLON(ventana.long1);
        actuales.CrearVistaMap();
        this->webView->setUrl(QUrl("pagina.html"));
    }
}
